# 今有某数据集data.xlsx,字段分别为：id,sex,level
# 其中，sex有两个类型：male，female，
#       level有三个类型：high,low,middle
#任务如下：
# 1.利用sklearn.preprocessing 中的 OneHotEncoder进行标志转换，输出数据为数值数组，记为df_1
#   第1列为id值，第2~4列为low,middle，high标志值，第5-6列为female、male标志值
# 2.利用pandas库中的get_dummies方法进行标志转换，输出结果为数据框,记为df2

import pandas as pd
df=pd.read_excel('data.xlsx')

c1=[]
c2=[]
for i in range(len(df)):
    if df.iloc[i,2]=='high':
       c1.append(3)
    if df.iloc[i,2]=='low':
       c1.append(1)
    if df.iloc[i,2]=='middle':
        c1.append(2)
    if df.iloc[i,1]=='male':
        c2.append(1)
    if df.iloc[i,1]=='female':
        c2.append(0)

df1=pd.DataFrame({'id':df.iloc[:,0],'sex':c2,'level':c1})

from sklearn.preprocessing import OneHotEncoder
m_e=OneHotEncoder()
df_1=m_e.fit_transform(df1.iloc[:,1:]).toarray()
import numpy as np
df_1=np.hstack((df1.iloc[:,0].values.reshape(len(df1),1),df_1))

df2=pd.get_dummies(df)